22개정 인공지능 기초 <교과서활동지(해 보기, 탐구 활동)>

1단원

11쪽

인공지능의 역할

탐색하기

● 인공지능이 적용된 제품이나 서비스를 생각해 보고, 인공지능이 어떤 것을 학습했을지 생각해 보자.

인공지능이 적용된 제품이나 서비스	인공지능이 학습한 것
□ 로봇 청소기	실내 공간과 장애물

14쪽

자율주행 자동차에 적용할 수 있는 인공지능

탐색하기

● 자율주행 자동차에 적용될 수 있는 인공지능을 생각해 보고, 인공지능의 역할을 설정해 보자.

인공지능이 적용될 수 있는 영역	인공지능의 역할
□ 전방 사물 인식	전방에 있는 장애물을 인식하여 사물의 종류를 분류한다.

15쪽

인공지능과 대화해 보기

분석하기

1. 대화형 인공지능 챗봇(코파일럿(Copilot), 챗GPT(ChatGPT), 뤼튼(wrtn) 등)과 대화해 보자.

코파일럿 https://www.microsoft.com/ko-kr/microsoft-copilot	챗GPT https://chat.openai.com/auth/login	뤼튼 https://wrtn.ai

질문	답변
□ 프로그래밍과 인공지능의 관계는?	프로그래밍과 인공지능은 깊게 연관된 분야입니다. 인공지능은 프로그래밍과 데이터 분석에 기반을 둔 기술이며, 적절한 프로그래밍이 없이는 인공지능 시스템을 구현할 수 없습니다.

2. 인공지능의 답변이 지능적인 답변인지 아닌지 생각해 보고, 그렇게 생각한 이유를 적어 보자.

• 지능적인 답변인가? □ 지능적인 답변이다.

•

그렇게 생각한 이유는? □ 질문에 적합한 대답을 제시한다. 이것은 질문을 이해했다고 볼 수 있고, 적절한 답을 제시한 것이기 때문에 지능이 있다고 볼 수 있다.

17쪽

인공지능을 활용한 문제 해결 사례 찾아보기

조사・분석하기

1. 인공지능을 활용하여 실생활이나 학문 분야의 문제를 해결한 사례를 찾아보자.

2

. 인공지능을 활용하였을 때와 활용하지 않았을 때의 차이점을 작성해 보고, 친구들과 이야기해 보자.

19쪽

탐구 활동	교실(학교)에서 발생하는 문제를 해결하기 위한 인공지능 설계하기

1. 교실(학교)에서 발생할 수 있는 문제를 찾아보자.

□ 겨울철 난방기 가동으로 인해 수업 시간에 조는 학생들이 늘어나는 문제

(1)

(2)

(3)

2. 발견한 문제 중 인공지능이 해결할 수 있는 문제와 해결하기 어려운 문제를 구분해 보고, 그 이유를 써 보자.

해결할 수 있는 문제	이유
□ 따뜻한 온도에 조는 학생	온도에 따라 조는 학생이 늘어나는 것을 알 수 있다.
해결하기 어려운 문제	이유

3. 발견한 문제를 해결하기 위해 인공지능에게 필요한 역할은 무엇인지 논의해 보자.

□ 따뜻해서 졸리지 않도록 온도를 조절한다.

4 문제 해결을 위해 인공지능이 적용된 지능 에이전트의 형태를 그림으로 그리고, 기능을 설명해 보자.

29쪽

탐구 활동	전구 켜기 연습 문제

◎ 24쪽에 제시된 전구 켜기 문제에서 1번 전구만 불이 꺼져 있고 나머지 전구들은 불이 켜져 있을 때, 모든 전구의 불을 켜기 위해서는 어떻게 해야 할지 탐색해 보자.

1. 초기 상태와 목표 상태를 설정해 보자.

• 초기 상태:	• 목표 상태:

2. 초기 상태의 다음 상태를 나타낸 표를 채워 보고, 켜진 전구에 색칠해 보자.

3. 상태 공간 트리를 완성하고 탐색 경로를 선택해 보자.

4. 탐색 결과를 친구들과 비교하며 이야기해 보자.

31쪽

	트리구조 파악하기	적용하기
● 본문에 제시된 ‘깊이 우선 탐색’ 트리 그림을 보고 다음 물음에 답해 보자. 1. B 노드의 자식 노드를 찾아서 적어 보자. 2. C 노드의 부모 노드를 찾아서 적어 보자. 3. D 노드의 형제 노드를 찾아서 적어 보자.

42쪽

탐구 활동	A* 탐색으로 8 퍼즐 해결하기

◎ 맹목적 탐색으로 해결하였던 8 퍼즐에 정보 이용 탐색을 적용하여 문제를 해결해 보자.

1. 8 퍼즐의 평가 함수는 다음과 같이 정해 보자.

• 휴리스틱 h(n): 8 퍼즐의 각 타일이 목표 상태와 다른 위치에 있는 개수로 정한다.

• 탐색 비용 g(n): 현재까지의 이동 횟수로 정한다.

• 평가 함수 f(n): 현재까지의 이동 횟수와 휴리스틱 값을 더한 값으로 정한다.

- 함수식: f(n) = g(n) + h(n)

2. 다음은 8 퍼즐에 A 탐색을 적용하여 문제를 해결하는 과정이다. 알맞은 g(n)과 h(n), f(n)을 적어 보자.                     (단, 평갓값이 같은 경우에는 모두 방문하여 자식 노드를 생성한다.)

3. 지능적 탐색이 필요한 다른 문제를 인터넷 검색 등을 통해 찾아보자.

4. 평가 함수로 고려할 수 있는 또 다른 휴리스틱에는 무엇이 있을지 이야기해 보자.

51쪽

탐구 활동	A* 탐색 알고리즘을 적용한 길 찾기 프로그램 구현

◎ A 탐색 알고리즘을 적용한 길 찾기 프로그램을 구현하여 프로그램을 개선하려고 한다. 빈칸(㉠~㉥)을 알맞은 내용으로 채워 프로그램을 완성해 보자.

최상우선 Search [‘서울’, ‘대전’, ‘제천’, ‘묵호항’, ‘울릉군’, ‘독도’] 총 이동 시간: 12

A Search [‘서울’, ‘양평’, ‘양양’, ‘묵호항’, ‘울릉군’, ‘독도’] 총 이동 시간: 9

[단계 ①] A 탐색과 최상우선탐색의 차이점을 파악하고, A 탐색의 평가 함수 정의하기

• 차이점:

• 평가 함수 f(n) 정의하기

- 최상우선탐색: f(n) = h(n)

- A 탐색: f(n) = (㉠                              )

[단계 ②] 알고리즘 설계하기

문제	알고리즘 설계
A* 탐색 적용하기	❶ 현재 노드와 연결된 노드 중 경로에 없는 노드를 우선순위 큐에 추가하기 ❷ 경험 정보와 현재까지의 이동 시간의 합이 가장 작은 노드에 가장 (㉡ ) 우선순위 부여하기 ❸ 우선순위가 가장 높은 노드를 큐에서 꺼내 방문하기 ❹ 방문한 노드를 방문집합과 경로 리스트 변수에 추가하고, 현재 노드까지의 이동 시간을 총 이동 시간 변수에 저장하여 갱신하기 ❺ 현재 노드가 목적지가 아니고 큐에 남은 노드가 있다면 반복하기 ❻ 실행이 끝나면 탐색 경로, 총 이동 시간 반환하기

[단계 3] 프로그래밍

설계한 알고리즘을 바탕으로 A 알고리즘을 적용한 독도로 가는 길 찾기 프로그램을 작성해 보자.

1. 준비하기

① 라이브러리 불러오기

② 지역별 위치 데이터 설정하기

③ 지역 간의 연결과 이동 시간 정보 설정하기

④ 각 지역의 경험 정보 설정하기

※ 최상우선탐색 알고리즘으로 길 찾기 프로젝트(46~49쪽)에서 작성했던 소스 코드를 그대로 사용하도록 한다.

2. A* 탐색 알고리즘 구현하기

① 시작 노드를 큐에 저장하고 탐색을 위한 변수 초기화하기

Astar( ) 함수는 bestFS( )를 활용한 사용자 함수다. 기본 구조를 그대로 사용하되 시작 노드에서 현재 노드까지 이동한 시간을 저장하는 변수 gn을 새롭게 선언하고 0으로 초기화한다.

② 탐색하기

이번 단계도 bestFS( )의 일부만 수정하여 사용한다. 수정할 부분은 다음과 같다.

현재 노드까지의 이동 시간 c_time을 총 이동 시간 astar_time에 저장한다.

현재까지의 총 이동 시간에 연결된 노드까지의 이동 시간을 더하여 gn 변수에 저장한다.

인접 노드의 휴리스틱 값에 gn을 더한 값을 우선순위로 설정하여 큐에 추가한다.

3. 지도에 경로 표시하기

이번 단계도 기존의 drawMap( ) 함수를 수정하여 사용한다.

• astar 변수를 추가한다.

• bestfs 변수를 astar 변수로 바꿔 Astar( )로 탐색한 결과가 지도에 출력되도록 한다.

4. 프로그램 실행하기

• besFS( ) 함수 호출을 참고하여 Astar( ) 함수를 호출한다.

• drawMap( ) 함수에 astar 변수를 추가한다.

• 탐색 경로와 총 이동 시간을 화면에 출력하는 부분을 추가한다.

[단계 4] 평가 및 공유

프로젝트 과정을 평가해 보자.

평가 항목	결과
문제 해결에 적합한 탐색 알고리즘인가?	Ｏ	Ｘ
프로그램이 문제를 효과적으로 해결하였는가?	Ｏ	Ｘ
XbestFS에 비해 A가 효율적인 탐색을 하였는가?	Ｏ	Ｘ

[자기 평가, 동료 평가]

평가 요소	자기 평가			동료 A			동료 B			동료 C
	상	중	하	상	중	하	상	중	하	상	중	하
알고리즘 이해도
문제 해결 방식의 창의성
참여도 및 협업 능력
프로그램의 완성도

[단계 5] 확장하기

지능적 탐색을 적용하여 프로그래밍할 수 있는 또 다른 예를 찾아보자.

56쪽

데이터, 정보, 지식 생성하기

분석하기

● 다음에 제시된 데이터로부터 정보와 지식을 생성해 보자.

데이터	정보	지식
□ 컴퓨터 용품과 고기를 구매하기 위해 가까운 두 마트의 가격을 조사했다.	□ 마트마다 물건값이 서로 다르게 형성되어 있다. 전자 제품은 A마트가 저렴하고 고기류는 B마트가 저렴하다.	□ 전자 제품을 사려면 A마트에 가고, 고기류를 사려면 B마트에 가면 더 저렴하게 물건을 구매할 수 있는 것을 알았다.
□ 지난 몇 년간의 계절별 평균 강수량을 조사했다.
[추가 심화활동] 계절별 기온, 겨울철 적설량, 폭염일 등을 조사하여 표로 작성해 보자.

57쪽

지식을 IF~THEN으로 표현해 보기

표현하기

● 내가 알고 있는 지식을 IF~THEN의 형태로 표현해 보자.

내가 알고 있는 지식	지식 표현(IF~THEN)
□ 봄이 되면 제비가 돌아온다.	IF 봄이 된다. THEN 제비가 돌아온다.

59쪽

	의미망을 이용하여 지식 표현하기		표현하기
● ‘~은(는) ~이(가) 있다’, ‘~은(는) ~을(를) 할 수 있다’, ‘~은(는) ~이다’를 이용하여 호의 의미를 작성해 보자. □ 마우스는 입력을 할 수 있다.

65쪽

탐구 활동	기관사의 성은 무엇일까?

◎ 다음 문제 상황과 조건을 읽고, 직원의 직업과 승객이 사는 지역, 기관사의 성을 추론해 보자.

[문제 상황]

어떤 기차에 남궁, 독고, 제갈의 성(姓)을 가진 기관사, 승무원, 엔지니어가 타고 있다. 성의 순서대로 해당 직업을 가진 것인지는 알 수 없다. 어느 날 이들과 똑같은 성을 가진 승객 3명이 기차에 탑승했다. 성 앞에 승객을 붙여 같은 성을 구분했다.

[조건]

① 승객 제갈 씨는 부산에 산다.

② 엔지니어는 부산과 대전의 중간 지역에 산다.

③ 승객 독고 씨는 연봉 2,000만 원을 번다.

④ 남궁 씨는 당구로 승무원을 이긴다.

⑤ 승객 중 한 명은 엔지니어의 이웃이고, 엔지니어 연봉의 정확히 3배가 되는 연봉을 번다.

⑥ 대전에 사는 승객은 엔지니어와 이름이 같다.

□ [1단계] 조건 ①번과 ④번을 통해 승객 제갈 씨가 부산에 산다는 것과 직원 남궁 씨가 승무원이 아니라는 것을 알 수 있다.

직원	기관사	승무원	엔지니어
남궁 씨		X
독고 씨
제갈 씨

승객	대전	중간 지역	부산
남궁 씨			X
독고 씨			X
제갈 씨			O